package aceim.protocol.snuk182.icq.utils;
import aceim.api.dataentity.InputFormFeature;
import aceim.api.dataentity.ListFeature;
import aceim.api.dataentity.MarkerFeature;
import aceim.api.dataentity.ProtocolOption;
import aceim.api.dataentity.ProtocolOption.ProtocolOptionType;
import aceim.api.dataentity.ProtocolServiceFeature;
import aceim.api.dataentity.ProtocolServiceFeatureTarget;
import aceim.api.dataentity.tkv.StringTKV;
import aceim.api.dataentity.tkv.StringTKV.ContentType;
import aceim.api.dataentity.tkv.TKV;
import aceim.api.service.ApiConstants;
import aceim.api.utils.Utils;
import aceim.protocol.snuk182.icq.IcqApiConstants;
import aceim.protocol.snuk182.icq.R;
import android.content.Context;
public final class ResourceUtils {
private static ProtocolServiceFeature[] FEATURES = null;
public static final ProtocolServiceFeature[] getFeatures(Context context) {
if (FEATURES == null) {
FEATURES = new ProtocolServiceFeature[] {
new ListFeature(
ApiConstants.FEATURE_STATUS,
context.getString(R.string.status),
0,
true,
true,
true,
Utils.fillResources(context.getResources(), R.array.array_status_strings),
Utils.fillResources(context.getResources(), R.array.array_status_icons),
false,
new ProtocolServiceFeatureTarget[]{ProtocolServiceFeatureTarget.ACCOUNT}),
new ListFeature(
ApiConstants.FEATURE_XSTATUS,
context.getString(R.string.xstatus),
0,
true,
true,
true,
Utils.fillResources(context.getResources(), R.array.icq_xstatus_descr),
Utils.fillResources(context.getResources(), R.array.icq_xstatus_names_32),
true,
new ProtocolServiceFeatureTarget[]{ProtocolServiceFeatureTarget.ACCOUNT}),
new ListFeature(
IcqApiConstants.FEATURE_ACCOUNT_VISIBILITY,
context.getString(R.string.visibility),
0,
true,
true,
true,
Utils.fillResources(context.getResources(), R.array.array_account_visibility_names),
Utils.fillResources(context.getResources(), R.array.array_account_visibility_icons),
false,
new ProtocolServiceFeatureTarget[]{ProtocolServiceFeatureTarget.ACCOUNT}),
new ListFeature(IcqApiConstants.FEATURE_BUDDY_VISIBILITY,
context.getString(R.string.visibility),
android.R.drawable.ic_menu_view,
true,
true,
false,
Utils.fillResources(context.getResources(), R.array.array_buddy_visibility_names),
Utils.fillResources(context.getResources(), R.array.array_buddy_visibility_icons),
true,
new ProtocolServiceFeatureTarget[]{ProtocolServiceFeatureTarget.BUDDY}),
new InputFormFeature(
IcqApiConstants.FEATURE_BUDDY_SEARCH,
context.getString(R.string.search),
android.R.drawable.ic_menu_search,
false,
false,
getSearchFormTKVs(context),
new ProtocolServiceFeatureTarget[]{ProtocolServiceFeatureTarget.ACCOUNT}),
new InputFormFeature(IcqApiConstants.FEATURE_AUTHORIZATION,
context.getString(R.string.ask_authorization),
android.R.drawable.ic_dialog_alert,
true,
false,
getAuthorizationFields(context),
new ProtocolServiceFeatureTarget[]{ProtocolServiceFeatureTarget.BUDDY}),
new MarkerFeature(ApiConstants.FEATURE_FILE_TRANSFER,
"File Transfer",
android.R.drawable.ic_menu_save,
false,
false,
new ProtocolServiceFeatureTarget[]{ProtocolServiceFeatureTarget.BUDDY}),
new MarkerFeature(ApiConstants.FEATURE_BUDDY_MANAGEMENT,
"Buddy management",
android.R.drawable.ic_menu_info_details,
false,
false,
new ProtocolServiceFeatureTarget[]{ProtocolServiceFeatureTarget.BUDDY}),
new MarkerFeature(ApiConstants.FEATURE_GROUP_MANAGEMENT,
"Group management",
android.R.drawable.ic_menu_info_details,
false,
false,
new ProtocolServiceFeatureTarget[]{ProtocolServiceFeatureTarget.GROUP}),
new MarkerFeature(ApiConstants.FEATURE_ACCOUNT_MANAGEMENT,
"Account info management",
android.R.drawable.ic_menu_info_details,
false,
false,
new ProtocolServiceFeatureTarget[]{ProtocolServiceFeatureTarget.ACCOUNT})
};
}
return FEATURES;
}
private static final TKV[] getAuthorizationFields(Context context) {
return new TKV[]{
new StringTKV(ContentType.STRING, context.getString(R.string.message), true, context.getString(R.string.ask_authorization_message_default))
};
}
private static final TKV[] getSearchFormTKVs(Context context) {
return new TKV[]{
new StringTKV(ContentType.STRING, context.getString(R.string.uin), false, null)
//new StringTKV(ContentType.STRING, context.getString(R.string.screenname), false, null),
};
}
public static final String KEY_USERNAME = "key_username";
public static final String KEY_PASSWORD = "key_password";
public static final String KEY_LOGIN_HOST = "key_login_host";
public static final String KEY_LOGIN_PORT = "key_login_port";
public static final String KEY_PING_TIMEOUT = "key_ping_timeout";
public static final String KEY_SECURE_LOGIN = "key_secure_login";
public static final ProtocolOption[] OPTIONS = {
new ProtocolOption(ProtocolOptionType.DOUBLE, KEY_USERNAME, null, R.string.uin, true),
new ProtocolOption(ProtocolOptionType.PASSWORD, KEY_PASSWORD, null, R.string.password, true),
new ProtocolOption(ProtocolOptionType.STRING, KEY_LOGIN_HOST, "login.icq.com", R.string.host, false),
new ProtocolOption(ProtocolOptionType.INTEGER, KEY_LOGIN_PORT, "5190", R.string.port, false),
new ProtocolOption(ProtocolOptionType.INTEGER, KEY_PING_TIMEOUT, "200", R.string.ping, false),
new ProtocolOption(ProtocolOptionType.CHECKBOX, KEY_SECURE_LOGIN, "true", R.string.secure, false)
};
}